<Ju4n_Devlog/>

[JPA] 영속성(persistence)

영속성이란?

  • 정의 : 데이터를 오랜 기간 유지하거나 저장하는 속성

  • in JPA : 객체를 데이터베이스에 저장하고,필요할 때 다시 불러올 수 있는 속성

영속성 컨텍스트

  • 정의 : JPA가 객체를 추적하고 관리하는 라이프사이클 영역

  • 중요성 : 객체의 상태를 추적하여 데이터베이스와 동기화하며, 성능과 일관성을 향상시킴

영속성 상태

1. 비영속 상태(Transient)

JPA가 아직 모르는 상태. 새로운 객체를 생성하고, 영속성 컨텍스트나 데이터베이스와는 관련이없는 상태

2. 영속 상태(Persistent)

영속성 컨텍스트에 의해 관리되는 상태. 객체가 데이터베이스에 저장된 상태이며, JPA가 객체의 변경을 감지하고 관리함

3. 준영속 상태 (Detached)

영속성 컨텍스트에 의해 더 이상 관리되지 않는 상태. 일부 트랜잭션이 종료되거나, 영속성 컨텍스트에서 해당 객체를 분리할 때 발생

4. 삭제 상태 (Removed)

객체가 삭제되었음을 나타내는 상태. 실제 데이터베이스에서는 삭제 X

JPA 영속성 작업

  • Persist(): 새로운 객체를 영속 상태로 만듬

  • Merge(): 준영속 상태의 객체를 다시 영속 상태로 만듬

  • Remove(): 영속 상태의 객체를 삭제

  • Find(): 데이터베이스에서 엔티티를 찾아와 영속 상태로 만듬